<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Expression Language : EL</title>
</head>
<body>
<h1>Expression Language : EL</h1>
<h3>개요</h3>
<p>JSP 2.0부터 지원되기 시작함</p>
<p>JSP 1.2 때는 JSTL을 사용해야 쓸수 있었음</p>
<p>스크립트릿 없는 JSP 페이지를 만들기 위해 탄생</p>
<p>이것을 사용하면 어플리케이션의 데이터 접근코드를
간단하고 쉽게 작성할 수 있음</p>

<h3>기본문법</h3>
<p>EL은 $ &#123; 로 시작하고 } 로 끝남</p>
<p>EL 표현식은 어떠한 형식의 값도 쉽게 변환 가능(자동)</p>
<p>반환된 값이 속성이 포함된 객체라면
 [] 나 . 로 속성에 접근 가능</p>
 <p>$ &#123; 객체명["속성명"] }, 
 				$ &#123; 객체명.속성명 }</p>
<p>$ &#123; 객체명["객체명"]["속성명"] }, 
 				$ &#123; 객체명.객체명.속성명 }</p>
<p>$ &#123; 객체명.객체명["속성명"] }, 
 				$ &#123; 객체명["객체명"].속성명 }</p>
<p>자바빈에 접근할 때에는 
	$ &#123; 빈이름["속성명"], 
	$ &#123; 빈이름.속성명 } 형식을 사용</p>

<h3>암묵적 객체</h3>
<p>pageContext</p>
<p>initParam</p>
<p>param : 모든 요청 매개변수를 담은 객체</p>
<p>paramValues</p>
<p>header : 모든 요청 헤더를 담은 객체</p>
<p>headerValues</p>
<p>cookie : 현재 요청에 대한 모든 쿠키 객체를 
				담은 맵 객체</p>
<p>applicationScope</p>
<p>sessionScope : HttpSession 객체의 
				모든 속성을 담은 맵 객체</p>
<p>requestScope : HttpServletRequest 객체의
				모든 속성을 담은 맵 객체</p>
<p>pageScope</p>

<h3>기타 연산자</h3>
<p>산술</p>
<p>관계 : ==, !=, eq, ne, gt, ge, lt, le</p>
<p>논리 : and, or, not</p>
<p>조건 : $&#123; 문장 ? 값1 : 값2 }</p>
<p>empty : 값이 비어있거나 null인지 확인하는데 사용</p>

<h3>스크립트릿 없는 JSP 작성</h3>
<p>jsp-config 태그와 jsp-property-group 요소와
url-pattern, scripting-invalid 하위요소를 사용</p>

<hr />
<p> 호스트명 : ${ header.host } / ${ header["host"] } </p>
<p> 서버 경로 : ${ pageContext["request"]["servletPath"] } </p>
<p> 요청 방식 : ${ pageContext["request"]["method"] } </p>
<p> 세션id : ${ pageContext.session.id }</p>
<p> 쿠키 경로 : ${ cookie.jsessionid.path }</p>
<p> 쿠키세션값 : ${ cookie.jsessionid.value }</p>
<p> 요청 매개변수 값 : ${ param.uid } </p>
<p> 간단한 산술식 : 
		${ (param.uid gt 123456) ?  "크다" : "작다" } </p>










</body>
</html>